Instalação e configuração do Nagios
Nagios é um sistema de monitoração das aplicações de rede. Ele vigia os hosts e serviços que você especificar, alertando quando um deles estiver "down" e também quando os mesmos estiverem "up", trabalhando de forma pró-ativa. Esta ferramenta é a evolução do NetSaint.
Parte 5: Configuração do Nagios
Depois da instalação do Nagios e dos plugins, estamos quase prontos para iniciar a monitoração dos nossos servidores, mas antes precisamos configurar alguns arquivos.
# cd /usr/local/nagios/etc
# ls
O comando "ls" irá mostrar todos os arquivos *.cfg-sample, precisamos renomear esses arquivos para *.cfg. Criem um diretório "sample" e copie todos os arquivos *.cfg-sample para esse diretório, uma cópia de segurança, em seguida renomeie todos os arquivos *.cfg-sample para *.cfg.
Como a nossa configuração é simples e não iremos entrar em maiores detalhes, apague os arquivos "dependencies.cfg" e "escalation.cfg", iremos criar dois arquivos em branco para substituir os mesmos:
# touch dependencies.cfg
# touch escalations.cfg
No arquivo hosts.cfg devemos colocar os servidores que desejamos monitorar. Edite o arquivo hosts.cfg com o seu editor preferido. Exemplo:
# vi hosts.cfg
# cd /usr/local/nagios/etc
# ls
O comando "ls" irá mostrar todos os arquivos *.cfg-sample, precisamos renomear esses arquivos para *.cfg. Criem um diretório "sample" e copie todos os arquivos *.cfg-sample para esse diretório, uma cópia de segurança, em seguida renomeie todos os arquivos *.cfg-sample para *.cfg.
Como a nossa configuração é simples e não iremos entrar em maiores detalhes, apague os arquivos "dependencies.cfg" e "escalation.cfg", iremos criar dois arquivos em branco para substituir os mesmos:
# touch dependencies.cfg
# touch escalations.cfg
Conteúdo do arquivo hosts.cfg
No arquivo hosts.cfg devemos colocar os servidores que desejamos monitorar. Edite o arquivo hosts.cfg com o seu editor preferido. Exemplo:
# vi hosts.cfg
# 'servidor1' host definition
define host{
use generic-host ; Name of host template to use
host_name servidor1
alias Web Server #1
address 192.168.0.1
check_command check-host-alive
max_check_attempts 5
notification_interval 1
notification_period 24x7
notification_options d,u,r
}
Para cada "host" você irá criar um conjunto das linhas acima, identificando o "hostname" do servidor e o "IP address".
Conteúdo do arquivo hostgroup.cfg
Edite o arquivo hostgroup.cfg, use o seu editor preferido. Exemplo:
# vi hostgroup.cfg
# 'email-servers' host group definition
define hostgroup {
hostgroup_name http-servers
alias Web Servers
contact_groups http-admins
members servidor1, servidor2
}
Agora necessitamos adicionar os hosts para o hostgroup usando o arquivo acima. Acima nós definimos um novo "hostgroup" e associamos o "http-admins" com grupo de contato para ele. Agora iremos ver o arquivo "contactgroup".
Conteúdo do arquivo contactgroup.cfg
# 'http-admins' contact group definition
define contactgroup {
contactgroup_name http-admins
alias Web Administrators
members hugo,leonardo
}
Nós definimos o grupo de contato "http-admins" e adicionamos dois members, "hugo" e "leonardo". Estas configurações asseguram que ambos os usuários serão notificados quando alguma coisa errada acontecer com os servidores que as pessoas do grupo "http-admins" são responsáveis.
A próxima etapa será configurarmos as informações dos contatos e notificações para estes usuários.
Conteúdo do arquivo contacts.cfg
# 'hugo' contact definition
define contact {
contact_name hugo
alias Hugo Rebello
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-email
host_notification_commands host-notify-by-email
email hugo@nssecurity.com.br
}
# 'leonardo' contact definition
define contact{
contact_name leonardo
alias Leonardo
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-email
host_notification_commands host-notify-by-email
email leonardo@nssecurity.com.br
}
Para criarmos os detalhes dos usuários o arquivo é o contacts.cfg, conforme exemplo acima.
Depois de criados os hosts, grupo dos hosts, contatos e grupos dos contatos, iremos identificar qual o serviço que queremos gerenciar em cada host.
No exemplo abaixo estamos habilitando o gerenciamento através do PING para saber se o servidor está no ar e o serviço HTTP para sabermos se o serviço Web está funcionando corretamente.
Conteúdo do arquivo services.cfg
# Service definition
define service {
use generic-service ; Name of service template to use
host_name servidor1
service_description HTTP
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 1
retry_check_interval 1
contact_groups http-admins
notification_interval 2
notification_period 24x7
notification_options w,u,c,r
check_command check_http
}
# Service definition
define service {
use generic-service ; Name of service template to use
host_name servidor1
service_description PING
is_volatile 0
check_period 24x7
max_check_attempts 5
normal_check_interval 1
retry_check_interval 1
contact_groups http-admins
notification_interval 2
notification_period 24x7
notification_options c,r
check_command check_ping!100.0,20%!500.0,60%
}
Agora que terminamos a configuração dos hosts, contatos e serviços, podemos iniciar o serviço do Nagios para iniciarmos a monitoração dos nossos servidores.
Por experiência própria com o Red Hat 8.0, carregue o serviço com a opção "reload" e não "start". Ainda não sei porque, mas a opção "start" quando carregada pela primeira vez gera alguns erros que não permite carregar o serviço.